#include <stdlib.h>
#include <stdio.h>

typedef char DataType;

typedef struct Node
{
    DataType data;
    struct Node *leftChild;
    struct Node *rightChild;
}BiTreeNode;

void create_tree(BiTreeNode **root_pp, char * pre_order_seq, int num_chars);

void pre_order_traversal(BiTreeNode *t, void visit(DataType item));

void in_order_traversal(BiTreeNode *t, void visit(DataType item));

void post_order_traversal(BiTreeNode *t, void visit(DataType item));

BiTreeNode * search(BiTreeNode *root, DataType x);

void Visit(DataType item);

void desftroy(BiTreeNode **root);